#ifndef __RC8088_PROFILE_H__
#define __RC8088_PROFILE_H__

#include <stdint.h>


/***************************************************/
/*----------------SUBFRAME PROFILE ----------------*/
/***************************************************/
typedef struct
{
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t ramp_sycn_maskC:1;
			volatile uint32_t ramp_sycn_maskB:1;
			volatile uint32_t ramp_sycn_maskA:1;
			volatile const uint32_t RFU0:1;
			volatile uint32_t pa_en_maskC:1;
			volatile uint32_t pa_en_maskB:1;
			volatile uint32_t pa_en_maskA:1;
			volatile const uint32_t RFU1:1;
			volatile uint32_t pll_acc_maskC:1;
			volatile uint32_t pll_acc_maskB:1;
			volatile uint32_t pll_acc_maskA:1;
			volatile const uint32_t RFU2:1;
			volatile uint32_t ramp_rma:4;
			volatile const uint32_t RFU3:16;
		}BIT;	
	} profile_wave_cfg0;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t interProfileIdleTimeValueB:4;
			volatile uint32_t interProfileIdleTimeScaleB:2;
			volatile const uint32_t RFU0:26;
		}BIT;	
	} profile_wave_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t loopNum:7;
			volatile uint32_t loopInf:1;
			volatile const uint32_t RFU0:24;
		}BIT;	
	} profile_wave_cfg2;
	volatile uint32_t profile_power_cfg0;
	volatile uint32_t profile_power_cfg1;
	volatile uint32_t profile_ana_cfg0;
	volatile uint32_t profile_ana_cfg1;
	volatile uint32_t profile_ana_cfg2;
	volatile uint32_t profile_ana_cfg3;
	volatile uint32_t profile_ana_cfg4;
	volatile uint32_t profile_ana_cfg5;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t rampBaseAddr:16;
			volatile uint32_t rampIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t rampInterInc:8;
		}BIT;	
	} profile_lut_ramp_cfg0;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t rampIntraCnt:8;
			volatile uint32_t rampInterCnt:8;
			volatile const uint32_t RFU0:16;
		}BIT;	
	} profile_lut_ramp_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t deltaInterInc_ramp_a_inc:16;
			volatile uint32_t deltaInterInc_ramp_a_time:16;
		}BIT;	
	} profile_lut_ramp_cfg2;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t deltaInterInc_ramp_b_inc:16;
			volatile uint32_t deltaInterInc_ramp_b_time:16;
		}BIT;	
	} profile_lut_ramp_cfg3;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t deltaInterInc_ramp_c_inc:16;
			volatile uint32_t deltaInterInc_ramp_c_time:16;
		}BIT;	
	} profile_lut_ramp_cfg4;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t deltaIntraInc_ramp_a_inc:16;
			volatile uint32_t deltaIntraInc_ramp_a_time:16;
		}BIT;	
	} profile_lut_ramp_cfg5;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t deltaIntraInc_ramp_b_inc:16;
			volatile uint32_t deltaIntraInc_ramp_b_time:16;
		}BIT;	
	} profile_lut_ramp_cfg6;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t deltaIntraInc_ramp_c_inc:16;
			volatile uint32_t deltaIntraInc_ramp_c_time:16;
		}BIT;	
	} profile_lut_ramp_cfg7;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t startFreqBaseAddr:16;
			volatile uint32_t startFreqIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t startFreqInterInc:8;
		}BIT;	
	} profile_lut_start_freq_cfg0;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t startFreqIntraCnt:8;
			volatile uint32_t startFreqInterCnt:8;
			volatile uint32_t RFU0:16;
		}BIT;	
	} profile_lut_start_freq_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t deltaInterInc_startFreq:24;
			volatile const uint32_t RFU0:8;
		}BIT;	
	} profile_lut_start_freq_cfg2;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t deltaIntraInc_startFreq:24;
			volatile const uint32_t RFU0:8;
		}BIT;	
	} profile_lut_start_freq_cfg3;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t adcRmaBaseAddr:16;
			volatile uint32_t adcRmaIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t adcRmaInterInc:8;
		}BIT;	
	} profile_lut_adc_rma_cfg0;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t adcRmaIntraCnt:8;
			volatile uint32_t adcRmaInterCnt:8;
			volatile const uint32_t RFU0:16;
		}BIT;	
	} profile_lut_adc_rma_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t deltaIntraInc_adcRma:16;
			volatile uint32_t deltaInterInc_adcRma:16;
		}BIT;	
	} profile_lut_adc_rma_cfg2;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t txEnBaseAddr:16;
			volatile uint32_t txEnIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t txEnInterInc:8;
		}BIT;	
	} profile_lut_tx_en_cfg0;	
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t txEnIntraCnt:8;
			volatile uint32_t txEnInterCnt:8;
			volatile const uint32_t RFU0:16;
		}BIT;	
	} profile_lut_tx_en_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t bpmBaseAddr:16;
			volatile uint32_t bpmIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t bpmInterInc:8;
		}BIT;	
	} profile_lut_bpm_cfg0;	
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t bpmIntraCnt:8;
			volatile uint32_t bpmInterCnt:8;
			volatile const uint32_t RFU0:16;
		}BIT;	
	} profile_lut_bpm_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx0PhaseBaseAddr:16;
			volatile uint32_t tx0PhaseIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t tx0PhaseInterInc:8;
		}BIT;	
	} profile_lut_tx0_phase_cfg0;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx0PhaseIntraCnt:8;
			volatile uint32_t tx0PhaseInterCnt:8;
			volatile uint32_t deltaIntraInc_tx0Phase:6;
			volatile const uint32_t RFU0:2;
			volatile uint32_t deltaInterInc_tx0Phase:6;
			volatile const uint32_t RFU1:2;
		}BIT;	
	} profile_lut_tx0_phase_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx1PhaseBaseAddr:16;
			volatile uint32_t tx1PhaseIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t tx1PhaseInterInc:8;
		}BIT;	
	} profile_lut_tx1_phase_cfg0;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx1PhaseIntraCnt:8;
			volatile uint32_t tx1PhaseInterCnt:8;
			volatile uint32_t deltaIntraInc_tx1Phase:6;
			volatile const uint32_t RFU0:2;
			volatile uint32_t deltaInterInc_tx1Phase:6;
			volatile const uint32_t RFU1:2;
		}BIT;	
	} profile_lut_tx1_phase_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx2PhaseBaseAddr:16;
			volatile uint32_t tx2PhaseIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t tx2PhaseInterInc:8;
		}BIT;	
	} profile_lut_tx2_phase_cfg0;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx2PhaseIntraCnt:8;
			volatile uint32_t tx2PhaseInterCnt:8;
			volatile uint32_t deltaIntraInc_tx2Phase:6;
			volatile const uint32_t RFU0:2;
			volatile uint32_t deltaInterInc_tx2Phase:6;
			volatile const uint32_t RFU1:2;
		}BIT;	
	} profile_lut_tx2_phase_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx3PhaseBaseAddr:16;
			volatile uint32_t tx3PhaseIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t tx3PhaseInterInc:8;
		}BIT;	
	} profile_lut_tx3_phase_cfg0;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx3PhaseIntraCnt:8;
			volatile uint32_t tx3PhaseInterCnt:8;
			volatile uint32_t deltaIntraInc_tx3Phase:6;
			volatile const uint32_t RFU0:2;
			volatile uint32_t deltaInterInc_tx3Phase:6;
			volatile const uint32_t RFU1:2;
		}BIT;	
	} profile_lut_tx3_phase_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx4PhaseBaseAddr:16;
			volatile uint32_t tx4PhaseIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t tx4PhaseInterInc:8;
		}BIT;	
	} profile_lut_tx4_phase_cfg0;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx4PhaseIntraCnt:8;
			volatile uint32_t tx4PhaseInterCnt:8;
			volatile uint32_t deltaIntraInc_tx4Phase:6;
			volatile const uint32_t RFU0:2;
			volatile uint32_t deltaInterInc_tx4Phase:6;
			volatile const uint32_t RFU1:2;
		}BIT;	
	} profile_lut_tx4_phase_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx5PhaseBaseAddr:16;
			volatile uint32_t tx5PhaseIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t tx5PhaseInterInc:8;
		}BIT;	
	} profile_lut_tx5_phase_cfg0;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx5PhaseIntraCnt:8;
			volatile uint32_t tx5PhaseInterCnt:8;
			volatile uint32_t deltaIntraInc_tx5Phase:6;
			volatile const uint32_t RFU0:2;
			volatile uint32_t deltaInterInc_tx5Phase:6;
			volatile const uint32_t RFU1:2;
		}BIT;	
	} profile_lut_tx5_phase_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx6PhaseBaseAddr:16;
			volatile uint32_t tx6PhaseIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t tx6PhaseInterInc:8;
		}BIT;	
	} profile_lut_tx6_phase_cfg0;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx6PhaseIntraCnt:8;
			volatile uint32_t tx6PhaseInterCnt:8;
			volatile uint32_t deltaIntraInc_tx6Phase:6;
			volatile const uint32_t RFU0:2;
			volatile uint32_t deltaInterInc_tx6Phase:6;
			volatile const uint32_t RFU1:2;
		}BIT;	
	} profile_lut_tx6_phase_cfg1;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx7PhaseBaseAddr:16;
			volatile uint32_t tx7PhaseIntraInc:4;
			volatile const uint32_t RFU0:4;
			volatile uint32_t tx7PhaseInterInc:8;
		}BIT;	
	} profile_lut_tx7_phase_cfg0;
	union
	{
		volatile uint32_t WORD;
		struct
		{
			volatile uint32_t tx7PhaseIntraCnt:8;
			volatile uint32_t tx7PhaseInterCnt:8;
			volatile uint32_t deltaIntraInc_tx7Phase:6;
			volatile const uint32_t RFU0:2;
			volatile uint32_t deltaInterInc_tx7Phase:6;
			volatile const uint32_t RFU1:2;
		}BIT;	
	} profile_lut_tx7_phase_cfg1;
	volatile const uint32_t RFU[2];
} RC8088_SubFrameProfile_st;



#endif
